OpenStack Havana中使用virt-install,建立CentOS虚拟机镜像

下载操作系统ISO安装镜像

# wget http://mirrors.grandcloud.cn/centos/6.5/isos/x86_64/CentOS-6.5-x86_64-netinstall.iso

建立虚拟机

创建镜像盘

# qemu-img create -f qcow2 centos-6.5.qcow2 10G

启动安装过程

# virt-install --virt-type kvm --name centos-6.5 --ram 2048 \
--cdrom=CentOS-6.5-x86_64-netinstall.iso \
--disk centos-6.5.qcow2,format=qcow2 \
--network bridge=br100 \
--graphics vnc,listen=0.0.0.0 --noautoconsole \
--os-type=linux --os-variant=rhel6

执行后可以通过以下命令获取到vnc服务地址,然后就可以通过VNC链接并开始安装系统了。

# virsh domdisplay centos-6.5

在安装界面Install Method中选择“URL”,并填入http://mirrors.grandcloud.cn/centos/6.5/os/x86_64/,继续安装就行了。安装过程中请使用DHCP,因为OpenStack默认是使用DHCP来分配地址的。

如果你使用virt-install遇到了问题,请查看:virt-insall

完成后可以使用如下命令查看配置:

# virsh dumpxml centos-6.5

使用virsh弹出cdrom,关闭主机,重新启动刚才创建的主机,如果你在操作安装界面选择了重启,则不需要执行前两步,直接执行virsh start centos-6.5就可以了

# virsh attach-disk --type cdrom --mode readonly centos-6.5 "" hdc
# virsh destroy centos-6.5
# virsh start centos-6.5

配置虚拟机

使用ssh登录虚拟机进行配置。

使用cloud-init

安装cloud-init后,密码登录被禁止,建立好的虚拟机的ssh只能通过Key登录,未指定Key是无法通过ssh登录的。

如果你不想安装cloud-init也可以,其实看来这个cloud-init是一个留给管理虚拟主机的后门,让管理主机可以直接登录虚拟机。

如果你想启用密码登录,编辑/etc/ssh/sshd_config使PasswordAuthentication yes然后,/etc/init.d/sshd restart就可以了。

# rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# yum install cloud-init

安装完成后通过/etc/cloud/cloud.cfg来配置,可以指定cloud-init所使用的用户,默认为cloud-user,它会自动创建,并且将会获取到OpenStack建立虚拟机时指定的Key,这样就可以通过控制节点和这里指定的用户登录虚拟机了;

启动参数配置

# echo "NOZEROCONF=yes" >> /etc/sysconfig/network

编辑/boot/grub/menu.lst文件,以使nova console-log被支持;

serial --unit=0 --speed=115200
terminal --timeout=10 console serial
# Edit the kernel line to add the console entries
kernel ... console=tty0 console=ttyS0,115200n8

清理虚拟机配置

虚拟机完成后需要对配置信息进行清除,如:MAC地址等;需要删除/etc/udev/rules.d/70-persistent-net.rules及/etc/sysconfig/network-scripts/ifcfg-eth0中的MAC地址。70-persistent-net.rules会在虚拟机下次启动时自动产生。

使用virt-sysprep清理配置

注意:使用这种方式我好像没有成功过,请使用后面的“人工清理配置”方法。

关闭实例

# /sbin/shutdown -h now

安装virt-sysprep依赖包 - For Ubuntu

# apt-get install libguestfs-tools
# apt-get install guestmount

清理虚拟机配置

# virt-sysprep -d centos-6.5

人工清理配置

在虚拟机上

# rf -f /etc/udev/rules.d/70-persistent-net.rules
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
注销掉HWADDR行

关闭虚拟机

# shutdown -h now

删除虚拟机安装信息

镜像制作完成后系统中不在需要这个虚拟机可以将相关信息删除掉。

# virsh undefine centos-6.5

如果你发现要修改虚拟机中的配置信息,可以使用virt-install重新启动虚拟机,注意,这次启动要使用--boot hd

# virt-install --virt-type kvm --name centos-6.5 --ram 2048 \
--disk centos-6.5.qcow2,format=qcow2 \
--network bridge=br100 \
--graphics vnc,listen=0.0.0.0 --noautoconsole \
--os-type=linux --os-variant=rhel6 \
--boot hd

完成后再次执行“清理虚拟机配置”及“删除虚拟机安装信息”两个部分。

上传Image到Glance服务器

完成后就可以上传到Image Service了。

glance image-create --name=CentOS-6.5-x86_64 --disk-format=qcow2 \
  --container-format=bare --is-public=true < centos-6.5.qcow2

[ 编辑 | 历史 ]
最近由“jilili”在“2014-04-02 12:38:50”修改